#if 0
//生存期bug
#include <stdio.h>

int * func(void)
{
    int a = 100;    //后面加static 延长生存期，静态生存期
    return &a;
}
int main(int argc, char const *argv[])
{
    int * p = func();
    printf("*p=%d\n",*p);
    return 0;
}
#endif

#if 1
//动态生存期
//静态生存期
#include <stdio.h>

void fun();
int main(int argc, char const *argv[])
{
    fun();
    fun();

    return 0;
}
void fun()
{
    static int a = 1;   //a 是块作用域（局部作用域），静态生存期，static修饰的局部变量只能被初始化一次
    int i = 5;          //i 是块作用域（局部作用域），动态生存期
    a++;
    i++;
    printf("i=%d,a=%d\n",i,a);
}  //到这里时 i的值被注销， a的值不销毁， 值也不变
//第一次 func 输出：i= 6 ，a= 2；
//第二次 func 输出：i= 6 ，a= 3；

#endif